2.3.2 Die Grundform mit WHERE
Bedingungen und Operatoren
Nun haben wir bisher immer alle Mitarbeiter angezeigt bekommen. Uns interessieren
aber nur einige wenige – oder nur ein einzelner – die ein bzw. mehrere Kriterien
erfüllen.
Zur Lösung wird dies einfach als weitere Bedingungen in die WHERE
-Zeile
übernommen. Da es sich um zusätzliche Einschränkungen handelt,
müssen wir sie mit AND
verknüpfen.
Um eine Zeile nicht zu lang werden zu lassen, können wir für jedes Schlüsselwort (besonders
AND
) eine neue Zeile beginnen. Wir werden für unsere letzte
Anweisung noch ein paar Bedingungen und die WHERE
-Zeile dafür aufschreiben.
Um alle Mitarbeiter aus der Abteilung Einkauf
anzuzeigen, lautet die komplette WHERE
-Anweisung:
SELECT tbl_titel.titel, name, abteilungsname, abteilung_aufgabengebiet FROM tbl_abteilung, tbl_titel, tbl_mitarbeiter WHERE tbl_abteilung.abteilung_ID=tbl_mitarbeiter.abteilung_ID AND tbl_titel.titel_ID=tbl_mitarbeiter.titel_ID AND tbl_abteilung.abteilungsname = "Einkauf"
Um alle Mitarbeiter der Firma anzuzeigen, die in der Abteilung Lager
beschäftigt werden und
die im Postleitzahlenbereich 014..
wohnen oder mehr als 540,00 Euro
Bruttolohn im Monat
bekommen (oder beides), schreiben wir:
SELECT tbl_titel.titel, name, abteilungsname, bruttolohn, plz FROM tbl_abteilung, tbl_titel, tbl_mitarbeiter WHERE tbl_abteilung.abteilung_ID=tbl_mitarbeiter.abteilung_ID AND tbl_titel.titel_ID=tbl_mitarbeiter.titel_ID AND tbl_abteilung.abteilungsname = "Lager" AND (plz LIKE "014%" OR bruttolohn > 540)
Abfrage ausführen
In diesem Beispiel wird deutlich, dass die Klammerung notwenig wird. Denn wir suchen hier nur Lagerarbeiter, die
entweder im Postleitzahlenbereich 014.. wohnen oder mehr als 540,00 Euro verdienen. Lässt man die
Klammerung weg, werden zuerst die AND-Verknüpfungen ausgeführt und das Ergebnis wird falsch.
Probieren Sie es ruhig aus!
Um nicht endlos lange Zeilen zu produzieren und unterscheiden zu können, welcher
Teil der WHERE
-Anweisung zur Verknüpfung und welcher zum Einschränken
der Ergebnisse dient, sollte die WHERE
-Anweisung auf zwei oder mehr Zeilen
aufgeteilt werden.
Ihnen wird sicher nicht entgangen sein, dass in manchen Fällen bei den Abfragen vor den Attributen die Tabellenbezeichnung geschrieben wurde und manchmal nicht.
Die Verknüpfung des Attributes mit dem Tabellennamen ist erforderlich, wenn in zwei oder mehreren Tabellen Attribute mit den gleichen Bezeichnungen auftreten!